/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package bpmn;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Sub Process</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link bpmn.SubProcess#getSubProcessType <em>Sub Process Type</em>}</li>
 *   <li>{@link bpmn.SubProcess#getIsATransaction <em>Is ATransaction</em>}</li>
 *   <li>{@link bpmn.SubProcess#getTransactionRef <em>Transaction Ref</em>}</li>
 * </ul>
 * </p>
 *
 * @see bpmn.BpmnPackage#getSubProcess()
 * @model
 * @generated
 */
public interface SubProcess extends Activity {
	/**
	 * Returns the value of the '<em><b>Sub Process Type</b></em>' attribute.
	 * The literals are from the enumeration {@link bpmn.SubProcessType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Sub Process Type</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Sub Process Type</em>' attribute.
	 * @see bpmn.SubProcessType
	 * @see #setSubProcessType(SubProcessType)
	 * @see bpmn.BpmnPackage#getSubProcess_SubProcessType()
	 * @model required="true"
	 * @generated
	 */
	SubProcessType getSubProcessType();

	/**
	 * Sets the value of the '{@link bpmn.SubProcess#getSubProcessType <em>Sub Process Type</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Sub Process Type</em>' attribute.
	 * @see bpmn.SubProcessType
	 * @see #getSubProcessType()
	 * @generated
	 */
	void setSubProcessType(SubProcessType value);

	/**
	 * Returns the value of the '<em><b>Is ATransaction</b></em>' attribute.
	 * The default value is <code>"false"</code>.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Is ATransaction</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Is ATransaction</em>' attribute.
	 * @see #setIsATransaction(Boolean)
	 * @see bpmn.BpmnPackage#getSubProcess_IsATransaction()
	 * @model default="false" required="true"
	 * @generated
	 */
	Boolean getIsATransaction();

	/**
	 * Sets the value of the '{@link bpmn.SubProcess#getIsATransaction <em>Is ATransaction</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Is ATransaction</em>' attribute.
	 * @see #getIsATransaction()
	 * @generated
	 */
	void setIsATransaction(Boolean value);

	/**
	 * Returns the value of the '<em><b>Transaction Ref</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Transaction Ref</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Transaction Ref</em>' reference.
	 * @see #setTransactionRef(Transaction)
	 * @see bpmn.BpmnPackage#getSubProcess_TransactionRef()
	 * @model
	 * @generated
	 */
	Transaction getTransactionRef();

	/**
	 * Sets the value of the '{@link bpmn.SubProcess#getTransactionRef <em>Transaction Ref</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Transaction Ref</em>' reference.
	 * @see #getTransactionRef()
	 * @generated
	 */
	void setTransactionRef(Transaction value);

} // SubProcess
